#include <cstddef>//for size_t
#include <algorithm>//for copy
using std::min;

template<typename T, size_t size>
class fixed_vector
{
public:
    typedef T* iterator;
    typedef const T* const_iterator;
    fixed_vector(){}
    iterator begin(){
        return v_;
    }
    const_iterator begin()const{
        return v_;
    }
    iterator end(){
        return v_+size;
    }
    const_iterator end()const{
        return v_+size;
    }
    template<typename O,size_t osize>
    fixed_vector(const fixed_vector<O,osize>& fv){
        copy(fv.begin(), fv.end() + min(size, osize), begin());
    }


private:
    T v_[size];
};
int main()
{
    fixed_vector<int ,4> a;
}
